import java.util.Arrays;
import java.util.Comparator;

public class project {
    public int removeCoveredIntervals(int[][] intervals) {
        int ret=0;
        Arrays.sort(intervals, new Comparator<int[]>() {
            @Override
            public int compare(int[] o1, int[] o2) {
                return o1[0]==o2[0]?o2[1]-o1[1]:o1[0]-o2[0];
            }
        });
        int end=0;
        int prev=0;
        for(int[] interval : intervals){
            end=interval[1];
            if(prev<end){
                ret++;
                prev=end;
            }
        }
        return ret;
    }



















    public int findLength(int[] nums1, int[] nums2) {
        return nums1.length<=nums2.length?findMax(nums1,nums2):findMax(nums2,nums1);
    }
    public int findMax(int[] nums1,int[] nums2){
        int len1=nums1.length;
        int len2=nums2.length;
        int max=0;
        for(int i=1;i<len1;i++){
            max=Math.max(max,find(nums1,nums2,0,len2-i,i));
        }
        for(int i=len2-len1;i>=0;i--){
            max=Math.max(max,find(nums1,nums2,0,i,len1));
        }
        for(int i=len1-1;i>0;i--){
            max=Math.max(max,find(nums1,nums2,len1-i,0,i));
        }
        return max;
    }
    public int find(int[] nums1,int[] nums2,int i,int j,int len){
        int count=0;
        int max=0;
        for(int k=0;k<len;k++){
            if(nums1[i+k]==nums2[j+k]){
                count++;
            }else{
                max=Math.max(max,count);
                count=0;
            }
        }
        return Math.max(count,max);
    }



















    public int countGoodRectangles(int[][] rectangles) {
        int sum=0;
        int max=0;
        for(int[] rectangle : rectangles){
            int len=Math.min(rectangle[0],rectangle[1]);
            if(len>max){
                max=len;
                sum=1;
            }else if(len==max){
                sum++;
            }
        }
        return sum;
    }
}
